package cn.edu.lsnu.mbti.service;

import cn.edu.lsnu.mbti.common.R;
import cn.edu.lsnu.mbti.dto.UserDto;
import cn.edu.lsnu.mbti.entity.User;
import cn.edu.lsnu.mbti.entity.vo.UserVo;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;

public interface UserService extends IService<User> {

    //登录
    UserDto login(User user);

    //注册时根据用户名查询用户
    R<String> getOneByUsername(User user);

    //注册
    R<User> register(User user);

    //登出
    R<String> logout(String id);

    //完善个人信息（回显数据）
    UserDto selectForEdit(String id);

    //完善个人信息（修改数据）
    R<String> edit(User user);

    //用户做完mbti测试 根据id修改用户的人格数据
    UserDto addUserPersonality(UserDto userDto);

    //分页查询用户列表
    Page<UserDto> pageList(UserVo userVo);

    //vue后台管理修改用户
    UserDto saveUser(User user);

    //vue后台管理删除用户
    String deleteById(String id);

    //vue后台管理修改用户状态
    void updateUserStatus(User user);
}
